Kinect V2在linux下的驱动安装与使用(从装Ubuntu系统开始哦) 您所在的位置:网站首页 kinect 连接 Kinect V2在linux下的驱动安装与使用(从装Ubuntu系统开始哦)

Kinect V2在linux下的驱动安装与使用(从装Ubuntu系统开始哦)

2023-08-27 19:11| 来源: 网络整理| 查看: 265

关于Kinect的背景

教研室采购了一个Kinect V2,拿来玩玩。首先,Kinect V2设备的运行需要有驱动支持。而我的Kinect 主要在Ubuntu系统下运行,因而需要在Ubuntu系统下安装驱动。

之前电脑中的ubuntu系统是安装在虚拟机下的,在经过搜索与咨询后,发现Kinect V2的驱动在虚拟机中虽然可以安装,但是设备无法被虚拟机检测到,即使我将Kinect 所需的USB3.0映射到虚拟机也不行。而且,更为重要的是,Kinect v2处理的数据量包括深度信息、彩色图像信息以及它们之间的匹配,因而Kinect V2需求的数据传送量很大,大约为250M/s。而这么大的数据传输量,也决定了不适合用虚拟机装Kinect的驱动。 因而,首先需要在原有的WIndows系统基础上,重新安装一个具有ubuntu的双系统。之后在新系统下安装驱动、测试相机、标定和校准相机,这也是本文的主要内容。

Windows下安装ubuntu双系统

1.首先,在windows系统下,分配留给ubuntu的硬盘空间。 2. 之后在官方(阿里云镜像)按需下载镜像,我用的是深圳蓝鲸智能机器人有限公司的xiaoqiang.ios.该镜像是基于ubuntu16.04的ros镜像。 3. 下载类似ultraISO的启动盘制作工具,将U盘制成启动盘。 4. 重启系统,进入BIOS启动界面,将UEFI的u盘启动作为第一选项。 5. 输入系统预设系统用户名、帐号、密码信息后,即可进入安装界面。 6. 进入分区界面,选中要安装的硬盘(别手抖选成系统盘,否则Windows下什么都没了哟!),按需分配/boot/efi、/SWAP、/等区,一般“/”区最大,把前两个区分好,剩下的都给它就好了。 7. 之后,装完系统,再把U盘拔掉,重新进入BIOS,选择UBUNTU启动选项,进入系统就完成安装了!

uBuntu16.04下安装kinect v2的驱动

Kinect V2在ubuntu系统下的驱动包,叫libfreenect2。 驱动包安装前,需要进行一些依赖项的配置。

Install build tools sudo apt-get install build-essential cmake pkg-configInstall libusb sudo apt-get install libusb-1.0-0-devInstall TurboJPEG sudo apt-get install libturbojpeg libjpeg-turbo8-devInstall OpenGL sudo apt-get install libglfw3-dev之后就到libfreenect2文件下编印安装就好: 在libfreenect2文件目录下,打开terminal: mkdir build cd build camke .. make make install 上述只是安装了ubuntu16.04和Kinect V2 之间的驱动关系,之后还需要ROS和Kinect V2 之间,还需要iai_kinect2这个包来支撑。这个包大家直接下载下来,在catkin_make的工作目录下,catkin_make一下就好了。最后,重新启动下电脑,重新插拔Kinect 的USB 接口。重新回到bin目录下,运行实例程序: ./Protonect

如果一切顺利,就可以看到带有些阴影的点云图像。 之所以有阴影,是因为相机还未进行标定和校准。下面就来进行kinect V2呢 的相机标定与校准。

kinect V2相机的标定与校准

相机的标定与校准程序利用的是Kinect V2的校准包,也就是上文安装的iai_kinect2包。

我们要进行相机标定,所以要准备chess棋盘格,我的棋盘格为8x11x0.02(短边的特征棋盘格角点数x长边棋盘格角点x棋盘格长度2cm)。在iai_kincect2/kinect2_bridge/data下,建一个文件夹,存放标定拍的照片,文件名任意。标定彩色相机,拿起棋盘格标定板,找到相机可以识别棋盘格特征点的位置,截取图像,图像截取时,在图像界面内,按“空格键"或”s“,即可截图,为了标定结果的准确性,一般取10~20幅图像: rosrun kinect2_calibration kinect2_calibration chess8x11x0.02 record color 校准偏差: rosrun kinect2_calibration kinect2_calibration chess8x11x0.02 calibrate color 以同样方法,标定并校准ir(红外相机信息): //标定ir红外相机信息、在校准ir信息 rosrun kinect2_calibration kinect2_calibration chess8x11x0.02 record ir rosrun kinect2_calibration kinect2_calibration chess8x11x0.02 calibrate ir 同样的方法,早校准图像和输据的同步信息(synchronized): rosrun kinect2_calibration kinect2_calibration chess8x11x0.02 record sync rosrun kinect2_calibration kinect2_calibration chess8x11x0.02 calibrate sync 查看kinect下的serial number: xiaoqiang@xiaoqiang:~$ rosrun kinect2_bridge kinect2_bridge [ INFO] [Kinect2Bridge::initialize] parameter: base_name: kinect2 sensor: default fps_limit: -1 calib_path: /home/xiaoqiang/Documents/ros/src/iai_kinect2/kinect2_bridge/data/ use_png: false jpeg_quality: 90 png_level: 1 depth_method: opengl depth_device: -1 reg_method: default reg_device: -1 max_depth: 12 min_depth: 0.1 queue_size: 2 bilateral_filter: true edge_aware_filter: true publish_tf: false base_name_tf: kinect2 worker_threads: 4 [Info] [Freenect2Impl] enumerating devices... [Info] [Freenect2Impl] 5 usb devices connected [Info] [Freenect2Impl] found valid Kinect v2 @2:5 with serial 1650×××33947

上图的最后一行,就是serial number,通过运行下述命令行得到。

rosrun kinect2_bridge kinect2_bridge 在本节2中所述data目录下,新建文件夹,文件夹名称即为所得的serial number(文件夹名应为一串数字,而非字母哦)。将之前存放图像输据的文件夹中,calib_color.yaml calib_depth.yaml calib_ir.yaml calib_pose.yaml,这四个文件,复制粘贴到serial number这串数字的文件夹中。 10.之后重新 rosrun kinenct_bridege一下,然后用重新打开一个terminal,用下述命令图像显示点云数据,是不是效果比之前好些了呢。 rosrun kinect2_viewer kinect2_viewer


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有